package com.rc.saas.tenant.model.order;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.rc.saas.tenant.base.BaseModel;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

public class OrderInfo extends BaseModel {
    @ExcelIgnore
    private Long orderId;

    @ExcelIgnore
    private String tenantCode;

    @ExcelIgnore
    private String tenantOperatorCode;

    @ExcelIgnore
    private String hlhtTenantCode;

    @ExcelIgnore
    private String hlhtOperatorId;

    @ExcelIgnore
    private Long memberId;

    @ExcelIgnore
    private Long enterpriseId;

    @ExcelIgnore
    private Long operatorId;

    @ExcelIgnore
    private Long elecStationId;

    @ExcelIgnore
    private Long elecPileId;

    @ExcelIgnore
    private Long elecGunId;

    @ExcelIgnore
    private String orderNum;

    @ExcelProperty(value = "订单号",index = 0)
    private String outOrderNum;

    @ExcelProperty(value = "支付方式",index = 25,converter = OrderInfoAccountTypeConverter.class)
    private String accountType;

    @ExcelIgnore
    private Date startCommandTime;

    @ExcelIgnore
    private Date stopCommandTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ExcelProperty(value = "充电开始时间",index = 11)
    private Date startTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ExcelProperty(value = "充电结束时间",index = 12)
    private Date endTime;

    @ExcelProperty(value = "充电电量(度)",index = 16)
    private BigDecimal totalPower;

    @ExcelIgnore
    private BigDecimal totalElecMoney;

    @ExcelIgnore
    private BigDecimal totalSeviceMoney;

    @ExcelProperty(value = "充电金额(元)",index = 17)
    private BigDecimal totalMoney;

    @ExcelIgnore
    private BigDecimal discountServiceAmount;

    @ExcelProperty(value = "优惠金额(元)",index = 18)
    private BigDecimal discountAmount;

    @ExcelProperty(value = "实付金额(元)",index = 20)
    private BigDecimal payAmount;

    @ExcelProperty(value = "预付金额(元)",index = 21)
    private BigDecimal preAmount;

    @ExcelProperty(value = "退款金额(元)",index = 22)
    private BigDecimal refundAmount;

    @ExcelIgnore
    private String servicePriceAdjustType;

    @ExcelIgnore
    private BigDecimal servicePriceAdjustValue;

    @ExcelIgnore
    private BigDecimal serviceAdjustAmount;

    @ExcelIgnore
    private BigDecimal serviceAdjustDiscAmount;

    @ExcelIgnore
    private BigDecimal adjustTotalMoney;

    @ExcelIgnore
    private BigDecimal adjustPayAmount;

    @ExcelIgnore
    private BigDecimal adjustServiceDiffAmount;

    @ExcelIgnore
    private Integer stopReason;

    @ExcelIgnore
    private Integer pileStopReason;

    @ExcelIgnore
    private Integer sumPeriod;

    @ExcelIgnore
    private String evaluate;

    @ExcelIgnore
    private Integer evaStar;

    @ExcelProperty(value = "充电开始SOC",index = 14)
    private BigDecimal beginSoc;

    @ExcelProperty(value = "充电结束SOC",index = 15)
    private BigDecimal soc;

    @ExcelIgnore
    private String driverId;

    @ExcelProperty(value = "车牌",index = 9)
    private String carNum;

    @ExcelIgnore
    private String carVin;

    @ExcelIgnore
    private String carType;

    @ExcelIgnore
    private String elecPrices;

    @ExcelIgnore
    private String servicePrices;

    @ExcelIgnore
    private String adjustServicePrices;

    @ExcelIgnore
    private String adjustServiceFactPrices;

    @ExcelIgnore
    private Long invoiceId;

    @ExcelIgnore
    private String startType;

    @ExcelIgnore
    private String orderSource;

    @ExcelIgnore
    private String ticketUsingType;

    @ExcelIgnore
    private Integer billPrintCount;

    @ExcelIgnore
    private String remark;

    @ExcelIgnore
    private String hlhtOrderType;

    @ExcelIgnore
    private String hlhtOrderStatus;

    @ExcelProperty(value = "订单状态",index = 2,converter = OrderInfoStatusConverter.class)
    private String status;

    @ExcelIgnore
    private Long migrateId;

    @ExcelIgnore
    private String createdBy;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ExcelProperty(value = "创建时间",index = 26)
    private Date createdTime;

    @ExcelIgnore
    private String lastUpdatedBy;

    @ExcelIgnore
    private Date lastUpdatedTime;

    @ExcelIgnore
    private Long orderRefundApplyId;

    @ExcelProperty(value = "支付时间",index = 23)
    @com.alibaba.excel.annotation.format.DateTimeFormat("yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date occupyPayTime;

    @ExcelIgnore
    private BigDecimal occupyAmount;

    @ExcelIgnore
    private String occupyPrice;

    @ExcelIgnore
    private Integer occupyDuration;

    @ExcelProperty(value = "充电方式",index = 10,converter = OrderInfoChargingPolicyConverter.class)
    private String chargingPolicy;

    @ExcelIgnore
    private String chargingPolicyParm;

    @ExcelIgnore
    private String memberTicketIds;

    @ExcelIgnore
    private String isDelete;

    public String getIsDelete() {
        return isDelete;
    }

    public void setIsDelete(String isDelete) {
        this.isDelete = isDelete;
    }

    public Long getOrderId() {
        return orderId;
    }

    public void setOrderId(Long orderId) {
        this.orderId = orderId;
    }

    public String getTenantCode() {
        return tenantCode;
    }

    public void setTenantCode(String tenantCode) {
        this.tenantCode = tenantCode;
    }

    public String getTenantOperatorCode() {
        return tenantOperatorCode;
    }

    public void setTenantOperatorCode(String tenantOperatorCode) {
        this.tenantOperatorCode = tenantOperatorCode;
    }

    public String getHlhtTenantCode() {
        return hlhtTenantCode;
    }

    public void setHlhtTenantCode(String hlhtTenantCode) {
        this.hlhtTenantCode = hlhtTenantCode;
    }

    public String getHlhtOperatorId() {
        return hlhtOperatorId;
    }

    public void setHlhtOperatorId(String hlhtOperatorId) {
        this.hlhtOperatorId = hlhtOperatorId;
    }

    public Long getMemberId() {
        return memberId;
    }

    public void setMemberId(Long memberId) {
        this.memberId = memberId;
    }

    public Long getEnterpriseId() {
        return enterpriseId;
    }

    public void setEnterpriseId(Long enterpriseId) {
        this.enterpriseId = enterpriseId;
    }

    public Long getOperatorId() {
        return operatorId;
    }

    public void setOperatorId(Long operatorId) {
        this.operatorId = operatorId;
    }

    public Long getElecStationId() {
        return elecStationId;
    }

    public void setElecStationId(Long elecStationId) {
        this.elecStationId = elecStationId;
    }

    public Long getElecPileId() {
        return elecPileId;
    }

    public void setElecPileId(Long elecPileId) {
        this.elecPileId = elecPileId;
    }

    public Long getElecGunId() {
        return elecGunId;
    }

    public void setElecGunId(Long elecGunId) {
        this.elecGunId = elecGunId;
    }

    public String getOrderNum() {
        return orderNum;
    }

    public void setOrderNum(String orderNum) {
        this.orderNum = orderNum;
    }

    public String getOutOrderNum() {
        return outOrderNum;
    }

    public void setOutOrderNum(String outOrderNum) {
        this.outOrderNum = outOrderNum;
    }

    public String getAccountType() {
        return accountType;
    }

    public void setAccountType(String accountType) {
        this.accountType = accountType;
    }

    public Date getStartCommandTime() {
        return startCommandTime;
    }

    public void setStartCommandTime(Date startCommandTime) {
        this.startCommandTime = startCommandTime;
    }

    public Date getStopCommandTime() {
        return stopCommandTime;
    }

    public void setStopCommandTime(Date stopCommandTime) {
        this.stopCommandTime = stopCommandTime;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public BigDecimal getTotalPower() {
        return totalPower;
    }

    public void setTotalPower(BigDecimal totalPower) {
        this.totalPower = totalPower;
    }

    public BigDecimal getTotalElecMoney() {
        return totalElecMoney;
    }

    public void setTotalElecMoney(BigDecimal totalElecMoney) {
        this.totalElecMoney = totalElecMoney;
    }

    public BigDecimal getTotalSeviceMoney() {
        return totalSeviceMoney;
    }

    public void setTotalSeviceMoney(BigDecimal totalSeviceMoney) {
        this.totalSeviceMoney = totalSeviceMoney;
    }

    public BigDecimal getTotalMoney() {
        return totalMoney;
    }

    public void setTotalMoney(BigDecimal totalMoney) {
        this.totalMoney = totalMoney;
    }

    public BigDecimal getDiscountServiceAmount() {
        return discountServiceAmount;
    }

    public void setDiscountServiceAmount(BigDecimal discountServiceAmount) {
        this.discountServiceAmount = discountServiceAmount;
    }

    public BigDecimal getDiscountAmount() {
        return discountAmount;
    }

    public void setDiscountAmount(BigDecimal discountAmount) {
        this.discountAmount = discountAmount;
    }

    public BigDecimal getPayAmount() {
        return payAmount;
    }

    public void setPayAmount(BigDecimal payAmount) {
        this.payAmount = payAmount;
    }

    public String getServicePriceAdjustType() {
        return servicePriceAdjustType;
    }

    public void setServicePriceAdjustType(String servicePriceAdjustType) {
        this.servicePriceAdjustType = servicePriceAdjustType;
    }

    public BigDecimal getServicePriceAdjustValue() {
        return servicePriceAdjustValue;
    }

    public void setServicePriceAdjustValue(BigDecimal servicePriceAdjustValue) {
        this.servicePriceAdjustValue = servicePriceAdjustValue;
    }

    public BigDecimal getServiceAdjustAmount() {
        return serviceAdjustAmount;
    }

    public void setServiceAdjustAmount(BigDecimal serviceAdjustAmount) {
        this.serviceAdjustAmount = serviceAdjustAmount;
    }

    public BigDecimal getServiceAdjustDiscAmount() {
        return serviceAdjustDiscAmount;
    }

    public void setServiceAdjustDiscAmount(BigDecimal serviceAdjustDiscAmount) {
        this.serviceAdjustDiscAmount = serviceAdjustDiscAmount;
    }

    public BigDecimal getAdjustTotalMoney() {
        return adjustTotalMoney;
    }

    public void setAdjustTotalMoney(BigDecimal adjustTotalMoney) {
        this.adjustTotalMoney = adjustTotalMoney;
    }

    public BigDecimal getAdjustPayAmount() {
        return adjustPayAmount;
    }

    public void setAdjustPayAmount(BigDecimal adjustPayAmount) {
        this.adjustPayAmount = adjustPayAmount;
    }

    public BigDecimal getAdjustServiceDiffAmount() {
        return adjustServiceDiffAmount;
    }

    public void setAdjustServiceDiffAmount(BigDecimal adjustServiceDiffAmount) {
        this.adjustServiceDiffAmount = adjustServiceDiffAmount;
    }

    public Integer getStopReason() {
        return stopReason;
    }

    public void setStopReason(Integer stopReason) {
        this.stopReason = stopReason;
    }

    public Integer getPileStopReason() {
        return pileStopReason;
    }

    public void setPileStopReason(Integer pileStopReason) {
        this.pileStopReason = pileStopReason;
    }

    public Integer getSumPeriod() {
        return sumPeriod;
    }

    public void setSumPeriod(Integer sumPeriod) {
        this.sumPeriod = sumPeriod;
    }

    public String getEvaluate() {
        return evaluate;
    }

    public void setEvaluate(String evaluate) {
        this.evaluate = evaluate;
    }

    public Integer getEvaStar() {
        return evaStar;
    }

    public void setEvaStar(Integer evaStar) {
        this.evaStar = evaStar;
    }

    public BigDecimal getBeginSoc() {
        return beginSoc;
    }

    public void setBeginSoc(BigDecimal beginSoc) {
        this.beginSoc = beginSoc;
    }

    public BigDecimal getSoc() {
        return soc;
    }

    public void setSoc(BigDecimal soc) {
        this.soc = soc;
    }

    public String getDriverId() {
        return driverId;
    }

    public void setDriverId(String driverId) {
        this.driverId = driverId;
    }

    public String getCarNum() {
        return carNum;
    }

    public void setCarNum(String carNum) {
        this.carNum = carNum;
    }

    public String getCarVin() {
        return carVin;
    }

    public void setCarVin(String carVin) {
        this.carVin = carVin;
    }

    public String getCarType() {
        return carType;
    }

    public void setCarType(String carType) {
        this.carType = carType;
    }

    public String getElecPrices() {
        return elecPrices;
    }

    public void setElecPrices(String elecPrices) {
        this.elecPrices = elecPrices;
    }

    public BigDecimal getPreAmount() {
        return preAmount;
    }

    public void setPreAmount(BigDecimal preAmount) {
        this.preAmount = preAmount;
    }

    public BigDecimal getRefundAmount() {
        return refundAmount;
    }

    public void setRefundAmount(BigDecimal refundAmount) {
        this.refundAmount = refundAmount;
    }

    public String getServicePrices() {
        return servicePrices;
    }

    public void setServicePrices(String servicePrices) {
        this.servicePrices = servicePrices;
    }

    public String getAdjustServicePrices() {
        return adjustServicePrices;
    }

    public void setAdjustServicePrices(String adjustServicePrices) {
        this.adjustServicePrices = adjustServicePrices;
    }

    public String getAdjustServiceFactPrices() {
        return adjustServiceFactPrices;
    }

    public void setAdjustServiceFactPrices(String adjustServiceFactPrices) {
        this.adjustServiceFactPrices = adjustServiceFactPrices;
    }

    public Long getInvoiceId() {
        return invoiceId;
    }

    public void setInvoiceId(Long invoiceId) {
        this.invoiceId = invoiceId;
    }

    public String getStartType() {
        return startType;
    }

    public void setStartType(String startType) {
        this.startType = startType;
    }

    public String getOrderSource() {
        return orderSource;
    }

    public void setOrderSource(String orderSource) {
        this.orderSource = orderSource;
    }

    public String getTicketUsingType() {
        return ticketUsingType;
    }

    public void setTicketUsingType(String ticketUsingType) {
        this.ticketUsingType = ticketUsingType;
    }

    public Integer getBillPrintCount() {
        return billPrintCount;
    }

    public void setBillPrintCount(Integer billPrintCount) {
        this.billPrintCount = billPrintCount;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getHlhtOrderType() {
        return hlhtOrderType;
    }

    public void setHlhtOrderType(String hlhtOrderType) {
        this.hlhtOrderType = hlhtOrderType;
    }

    public String getHlhtOrderStatus() {
        return hlhtOrderStatus;
    }

    public void setHlhtOrderStatus(String hlhtOrderStatus) {
        this.hlhtOrderStatus = hlhtOrderStatus;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public Long getMigrateId() {
        return migrateId;
    }

    public void setMigrateId(Long migrateId) {
        this.migrateId = migrateId;
    }

    public String getCreatedBy() {
        return createdBy;
    }

    public void setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
    }

    public Date getCreatedTime() {
        return createdTime;
    }

    public void setCreatedTime(Date createdTime) {
        this.createdTime = createdTime;
    }

    public String getLastUpdatedBy() {
        return lastUpdatedBy;
    }

    public void setLastUpdatedBy(String lastUpdatedBy) {
        this.lastUpdatedBy = lastUpdatedBy;
    }

    public Date getLastUpdatedTime() {
        return lastUpdatedTime;
    }

    public void setLastUpdatedTime(Date lastUpdatedTime) {
        this.lastUpdatedTime = lastUpdatedTime;
    }

    public Long getOrderRefundApplyId() {
        return orderRefundApplyId;
    }

    public void setOrderRefundApplyId(Long orderRefundApplyId) {
        this.orderRefundApplyId = orderRefundApplyId;
    }

    public Date getOccupyPayTime() {
        return occupyPayTime;
    }

    public void setOccupyPayTime(Date occupyPayTime) {
        this.occupyPayTime = occupyPayTime;
    }

    public BigDecimal getOccupyAmount() {
        return occupyAmount;
    }

    public void setOccupyAmount(BigDecimal occupyAmount) {
        this.occupyAmount = occupyAmount;
    }

    public String getOccupyPrice() {
        return occupyPrice;
    }

    public void setOccupyPrice(String occupyPrice) {
        this.occupyPrice = occupyPrice;
    }

    public Integer getOccupyDuration() {
        return occupyDuration;
    }

    public void setOccupyDuration(Integer occupyDuration) {
        this.occupyDuration = occupyDuration;
    }

    public String getChargingPolicy() {
        return chargingPolicy;
    }

    public void setChargingPolicy(String chargingPolicy) {
        this.chargingPolicy = chargingPolicy;
    }

    public String getChargingPolicyParm() {
        return chargingPolicyParm;
    }

    public void setChargingPolicyParm(String chargingPolicyParm) {
        this.chargingPolicyParm = chargingPolicyParm;
    }

    public String getMemberTicketIds() {
        return memberTicketIds;
    }

    public void setMemberTicketIds(String memberTicketIds) {
        this.memberTicketIds = memberTicketIds;
    }
}
